package com.comac.ins.isfd.service;

import com.comac.ins.common.core.domain.R;
import com.comac.ins.common.mybatis.core.page.TableDataInfo;
import com.comac.ins.isfd.domain.bo.IsfdAcousticsFluidMaterialBo;
import com.comac.ins.isfd.domain.bo.query.IsfdAcousticsFluidMaterialQueryBo;
import com.comac.ins.isfd.domain.vo.IsfdAcousticsFluidMaterialVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.Collection;
import java.util.List;

/**
 * 声学流体材料Service接口
 */
public interface IIsfdAcousticsFluidMaterialService {

    /**
     * 查询声学流体材料
     *
     * @param id 主键
     * @return 声学流体材料
     */
    IsfdAcousticsFluidMaterialVo queryById(Long id);

    /**
     * 分页查询声学流体材料列表
     *
     * @return 声学流体材料分页列表
     */
    TableDataInfo<IsfdAcousticsFluidMaterialVo> queryPageList(IsfdAcousticsFluidMaterialQueryBo queryBo);

    /**
     * 查询符合条件的声学流体材料列表
     *
     * @param bo 查询条件
     * @return 声学流体材料列表
     */
    List<IsfdAcousticsFluidMaterialVo> queryList(IsfdAcousticsFluidMaterialBo bo);


    /**
     * 校验并批量删除声学流体材料信息
     *
     * @param ids 待删除的主键集合
     * @return 是否删除成功
     */
    Boolean deleteWithValidByIds(Collection<Long> ids);

    R<Void> batchUploadMaterials(MultipartFile[] files);

    Boolean updateMaterial(IsfdAcousticsFluidMaterialBo bo);

    Boolean addMaterial(IsfdAcousticsFluidMaterialBo bo);
}
